home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / shareware / solitarexx / scripts / tutorial.srx < prev   
Text File  |  2000-02-29  |  2KB  |  98 lines

  1. /* Klondike Tutorial */
  2. OPTIONS RESULTS
  3.  
  4. ADDBUTTON 0 10 'Start'
  5. ADDTEXT 4 42 '"Klondike Tuturial"' 6
  6. ADDSPACE 6 28
  7. ADDCYCLE 10 12 '"One|Two|Three"' 0 '"Cards at once"' 12
  8. ADDBUTTON 12 10 "Abort"
  9. ADDTEXT 14 42 '"Klondike Tuturial"' 6
  10. SELECTGUI 3
  11.  
  12. SCREENSIZE 2 15 7 0
  13. DO i = 0 TO 6
  14.     NEWSTACK 4 16+4 0 i 0 0 0 15
  15.     stack.i = RESULT
  16. END
  17. DO i = 0 TO 3
  18.     NEWSTACK i 0 i+2 i+3 1 0 15
  19.     base.i = RESULT
  20. END
  21. NEWSTACK 5 0 1 0 1 0 15
  22. deck = RESULT
  23. NEWSTACK 6 32+1 1 1 1 0 15 2 2
  24. waste = RESULT
  25. ADDCARDS deck SHUFFLED
  26.  
  27. DO FOREVER
  28.     ACTION
  29.     PARSE VAR RESULT act rest
  30.     IF act = 1 THEN EXIT
  31.     IF act = 3 THEN CALL GAME
  32. END
  33.  
  34. GAME:
  35.     CLEANUP deck
  36.     SELECTGUI 4
  37.     sel = 0
  38.     fin. = 0
  39.     GETGADGET 10
  40.     gadcards = RESULT +1
  41.     DO i=0 TO 6
  42.         CARDSELECT deck i
  43.         MOVECARDS deck stack.i
  44.         CARDSELECT deck 1
  45.         MOVECARDS deck stack.i REVERSE
  46.     END
  47.     DO FOREVER
  48.         ACTION
  49.         PARSE VAR RESULT act stack sid card
  50.         IF act = 1 THEN EXIT
  51.         IF act = 2 THEN SELECT
  52.             WHEN sid = 5 THEN CALL DODECK
  53.             WHEN sel = 0 & card>0 & sid>3 THEN sel = stack
  54.             WHEN sel = stack THEN CALL DOBASE
  55.             WHEN sel>0 & sid = 4 THEN CALL DOSTACKS
  56.             WHEN sel>0 & sid < 4 THEN CALL DOBASE
  57.             OTHERWISE NOP
  58.         END
  59.         IF act = 3 THEN DO
  60.             SELECTGUI 3
  61.             RETURN
  62.         END
  63.     END
  64. RETURN
  65.  
  66. DODECK:
  67.     CARDSELECT deck gadcards
  68.     IF RESULT = '' THEN DO
  69.         CARDSELECT waste 52
  70.         MOVECARDS waste deck REVERSE
  71.     END
  72.     ELSE MOVECARDS deck waste REVERSE
  73. RETURN
  74.  
  75. DOSTACKS:
  76.     CARDSELECT sel 0 RELATIVE
  77.     PARSE VAR RESULT stype sval xx
  78.     CARDSELECT stack 1
  79.     PARSE VAR RESULT type val xx
  80.     IF type = '' THEN DO
  81.         IF sval = 12 THEN MOVECARDS sel stack ATONCE
  82.     END
  83.     ELSE DO
  84.         IF (val = sval+1) & (((type + stype) // 2) = 1) THEN MOVECARDS sel stack ATONCE
  85.     END
  86.     sel = 0
  87. RETURN
  88.  
  89. DOBASE:
  90.     CARDSELECT sel 1
  91.     PARSE VAR RESULT type val xx
  92.     IF val = fin.type THEN DO
  93.         fin.type = fin.type +1
  94.         MOVECARDS sel base.type
  95.     END
  96.     sel = 0
  97. RETURN
  98.